Declares and info on MULTI.DLL Declare Function MultiListBox Lib "MULTI.DLL" (ByVal hWnd As Integer, ByVal hWnd As Integer, ByVal lStyle As Long) As Integer Declare Function MultiFind Lib "MULTI.DLL" (ByVal nStartIndex As Integer, ByVal lpString As String) As Integer Declare Function MultiCount Lib "MULTI.DLL" () As Integer Declare Sub MultiGetSel Lib "MULTI.DLL" (ByVal hWnd As Integer) Declare Sub MultiAdd Lib "MULTI.DLL" (ByVal lpString As String) Declare Sub MultiReset Lib "MULTI.DLL" (ByVal iNata As Integer) Declare Sub MultiDelete Lib "MULTI.DLL" (ByVal iIndex As Integer) Declare Sub MultiText Lib "MULTI.DLL" (ByVal iIndex As Integer) Declare Sub MultiSetTop Lib "MULTI.DLL" (ByVal iIndex As Integer) Sample Usage: List1.SetFocus d% = GetFocus() i% = MultiListBox(d%, hWnd, 0) 'List1 must be moved here. Move it wherever you'd like. This creates the MultiListBox. It is placed and sized according to List1. It returns the handle to the MSLB. hWnd is the forms hWnd. i% = MultiFind(3,"Hello") This searches the MSLB for "Hello" starting at index 3. It returns index of first match. i% = MultiCount() 'Returns count of items in MSLB. List1.SetFocus d% = GetFocus() Call MultiGetSel(d%) 'Places selected item(s) in List1. Call MultiAdd("Hello") 'Adds item to MSLB. Call MultiReset(0) 'Clears MSLB. 0 is necessary. Call MultiDelete(5) 'Deletes item with index 5 from MSLB (actually sixth item). Call MultiText(7) 'Puts item with index 7 in listbox used when MultiListBox was 'called. Call MultiSetTop(4) 'Makes item with index 4 the top item in the listbox. One other feature of MULTI.DLL is that it traps the doubleclick of the MSLB and sends a doubleclick message to the listbox used in MultiListBox call. It also puts the item that is doubleclicked in the same listbox.